Kohya's GUIでLoRAの学習をする
参考
Windowsでインストール
依存関係
$ cd kohya_ss
フォルダ内のsetup.batをダブルクリック
いくつか質問されるので選択する(選択肢は数字キー(0, 1, 2...)で選べるよ)
どの環境で使っているか?
This machine
どのタイプのマシンを使っていますか?
No distributed training
CPUのみでトレーニングを実行しますか?
NO
torch dynamoでスクリプトを最適化しますか?
NO
DeepSpeedを使用しますか?
NO
このマシンでのトレーニングに使用するGPU(idによる)をカンマ区切りでご記入ください。
グラボが1個しかなければall
nomadoor.iconの場合RTX3070はBF16に対応しているのでBF16を選択
(オプション)CUDNN 8.6のダウンロードとインストール
NVIDIA 30X0/40X0を持っていれば使える
からcuDNN v8.6.0をダウンロード
解凍してcudnn_windowsにリネーム
kohya_ssフォルダに置く
ターミナルでkohya_ssフォルダに移動して以下を実行
$ .\venv\Scripts\activate
$ python .\tools\cudann_1.8_install.py
ここあんまり自信ないnomadoor.icon
アップグレード
upgrade.batをダブルクリック
実行する
gui-user.batをダブルクリック
今はgui.batしかないwogikaze.icon
表示されたURLをブラウザで開く
素材の準備
https://www.youtube.com/watch?v=N4_-fB62Hwk
画像を用意する
少なくとも512×512以上、できる限り高画質
Topaz Gigapixel等で解像度を上げる方法もある
縦横比は気にしなくて良い
いらない部分はトリミング
画像の枚数は8の倍数が良い
そうなんだ基素.icon
ステップ数がバッチ数で綺麗に割り切れる数であれば良いのかなnomadoor.icon
ステップ数 = 画像数 × リピート × epochs
👍ステップ数 % バッチ数 = 0
キャプションをつける
Kohya's GUIのUtilitiesにBLIP等を使った自動キャプション生成機能がある
BLIPの性能がイマイチなので実写でもWD14-taggerを使ってもいいかもしれない
https://gyazo.com/50edff6ee7c5ac71be04c365ee02f75d
Basic Captioningに移動してテキストファイルの先頭にquoria-san,をつける
https://gyazo.com/d62ff389bf271854a507b9b329f7cc78
画像の横にキャプションが書かれたtxtファイルが生成されている
画像と比較しながら、妥当かどうか調べ、必要があれば編集する
とても面倒くさいnomadoor.icon基素.icon
トレーニング設定
Dreambooth LoRA欄に移動
基素.iconがkohyaでやったときにはNAIの手法の方でやったのでこの辺りから違いそう
📁Source model
https://gyazo.com/54dfbef0ff30161e799bb8849abcbcd8
ベースに使うモデルを選択
フォーマットを選択
🟩v2 / 🟩v_parameterization はSD 2.X系を選んだときに必要
📁Folders
Image folder
さっき作った学習用素材を指定する
が、ちょっとややこしい
code:ディレクトリ構造
📁適当なフォルダ
└ 📁img
└ 📁100_quoria-san
└ 🖼️📄作った画像とtxtファイル達
🚨imgフォルダのパスを指定する
$ C:/AI/SD 追加学習素材/LoRA/img
100_quoria-sanの100は繰り返しの回数
学習画像が15枚以上なら100
それ以下なら1500/画像の枚数を入れる
これもとのスクリプトでもそうなんですかね?指定した記憶がない…基素.icon
Kohya's GUIでいう100 × 画像枚数 × バッチ数ががmax_train_stepsなのかな
🚨更新
100回回したモデルを一つ作るよりも、10回刻みで回したモデルを10個作る方が都合が良い
今は15_フォルダ名にして下のEpoch数を15に、つまり15×15=225回してますnomadoor.icon
Regularisation folder(正則化画像) 🤔nomadoor.icon
code:ディレクトリ構成
📁適当なフォルダ
└ 📁classification
└ 📁1_car
└ 🖼️画像
上のimgと同じでclassificationのパスを指定する
Output folder
どこでも良いが、Stable Diffusion web UIのLoRAフォルダーにしておくと楽
$ ~~\stable-diffusion-webui\models\Lora
Logging folder
学習ログを置くフォルダ
これもどこでも良いけれど、imgフォルダの横に置くといいかも?
Model output name
好きなモデル名
📁Training parameters
LoRA type
LoRA / LoCoN / LoHAの指定ができる
Train batch size
処理を並行して行う
2なら、ステップ数が半分になる
増やせば早くトレーニングが終わるが、損失が増え(て失敗す)るため、元画像が膨大でないなら1or2で良い
Epoch
何回学習を回すか?
1回学習ごとにLoRAモデルが作られる
10にすると10個モデルができるため、XYプロットで過学習の判別ができる
15回くらいにしておく
Kohya_ss LoRAは途中で中断して再開という機能がない
Max train epoch
Max train steps
Save every N epochs
Caption Extension
キャプションファイルはテキスト形式で作ったので.txtを入れる
Mixed precision
Save precision
bf16が使える人も互換性のためにfp16にしたほうが良い? Cache latents
Cache latents to disk
Optimizer
LR scheduler extra arguments
Optimizer extra arguments
LR number of cycles
LR power
Seed(デフォルト 1234)
再現性のために1234のままにしておくのが良い
以下鬼門
よく分からないのでとりあえずコピペnomadoor.icon
Learning rate
0.0001
LR Scheduler
cosine_with_restarts
Text Encoder learning rate
3e-5
Network Rank(Dimension) / Network Alpha
128
Max resolution(デフォルト 512,512)
512,512
Enable buckets(デフォルト ✅)
✅が入っていると、アスペクト比がバラバラでも学習できる
🔻Advanced Configuration
Clip skip
リアル系なら1 アニメ系なら2 が良い?
Use 8bit adam(デフォルト ✅)
使わないほうが良いらしい
なくなった?nomadoor.icon
Bucket resolution steps(デフォルト 64)
32
さっぱり意味がわからなかったnomadoor.icon
解像度を何の倍数にするか決める。VAEが8分の1にするので最低でも8の倍数にした方が良い。
minとmax指定になってる,さっぱりわからないwogikaze.icon
Random crop instead of center crop(デフォルト 🟩)
✅
学習をする度にクロップする位置をちょっとずつ変える?
といいことがあるらしい???
Noise offset(0-1)
おそらく0.1で良い
Rate of caption dropout(デフォルト 0)
0.1
学習する度に10%の確率でキャプションが弾かれる
といいことがあるらしい???
Max num workers for DataLoader
0
処理が早くなるらしい
一番上に戻ってConfiguration file(設定ファイル)
しっかり保存しておきましょう
https://gyazo.com/a3db14a7fc212e9053b96957b04f721a
.jsonを忘れずにつけてSave💾
トレーニング開始
Train modelボタンを押してトレーニングを開始する
ターミナルの表示を確認してちゃんと開始されたかを確認
学習時間 : バッチサイズ1 3200ステップで45分
すごい短い?基素.icon
バッチサイズ2 10000ステップで6-7時間かかった
CUDNN入れないとダメなのかなぁ
バッチサイズ2で10000ステップは多いですね…nomadoor.icon
バッチサイズ2の4800ステップで2時間半強だったので、それくらいかかるかも
なるほど基素.icon
ステップの間の待ち時間?が結構長いのがやっていて気になりました
GPUがしばかれてない時間が半分ぐらいある
ログを見る
https://gyazo.com/932bc8d587ac37ec614de4cd234836b1
Train modelの下にあるStart tensorboardを押すと、ログファイルをもとにしたグラフを表示できる
https://gyazo.com/21cf1788f00ae4dbfcb42a042106aaa4
使ってみる
https://gyazo.com/b8764939036d84d3ce60c81bb911cb0fhttps://gyazo.com/57540375a9c991499bd4777d9daf0bd5https://gyazo.com/72b3a0fff9ba26dddebfbfd671d10fd8
左のprompt
code:ACertainModel
qualia-san, 1girl,Highly Detailed,looking at viewer,upper body,from front,bangs,wide view ,chibi, full body, wearing kimono <lora:qualia-san_v1.0:0.7>
すごいnishio.icon
2023/4/16
各所修正nomadoor.icon
Kohya's GUIはLoRA以外もできるのでタイトルを変更